package com.system.web.spring;


import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

//import com.workflow.WorkFlowUtils;
import com.common.db.JsonVO;
import com.common.db.Pg;
import com.common.utils.BeanUtils;
import com.common.utils.SystemDataDicCache;
import com.system.domain.T_data_dic;
import com.system.mapper.T_data_dicMapper;
//import com.system.service.T_data_dicMapperService;

//@Service
//@Transactional
@Controller
@RequestMapping("/t_data_dic")

public class T_data_dicController
{
	private static Logger log = Logger.getLogger(T_data_dicController.class.getName());

	//@Autowired
    //private T_data_dicService service;

	//@Autowired
	//private WorkFlowUtils workFlowUtils;

	@Resource
	private T_data_dicMapper mapper;
	//private int id;
	//private int[] ids;
	private Pg pg;

	/**
	 * 1、获取 T_data_dic信息列表，并且在列表页面展示
	 * @param request
	 * @return Pg，json格式
	 */
	@RequestMapping("/getAllT_data_dic")
	@ResponseBody
	public Pg getAllT_data_dic(HttpServletRequest request){
        int pageSize = 10;
        int startIndex = 0;
        T_data_dic t_data_dic = new T_data_dic();
        try{
	        if(request.getParameter("pageSize")!=null){
	        	pageSize = BeanUtils.stringToInt("pageSizeFlag", request.getParameter("pageSize"));
	        }
	        if(request.getParameter("startIndex")!=null){
	            startIndex = BeanUtils.stringToInt("startIndexFlag", request.getParameter("startIndex"));
	        }
	        if(request.getParameter("process_code")!=null){ //取得动作流 流程英文名称，后台查询数据关联使用
	        	t_data_dic.setProcess_code(request.getParameter("process_code"));
	        }
			if(request.getParameter("data_no")!=null&&!"".equals(request.getParameter("data_no"))){
	        	t_data_dic.setData_no(request.getParameter("data_no"));
	        }
			if(request.getParameter("data_type_name")!=null&&!"".equals(request.getParameter("data_type_name"))){
	        	t_data_dic.setData_type_name(request.getParameter("data_type_name"));
	        }
	        if(request.getParameter("data_type_no")!=null&&!"".equals(request.getParameter("data_type_no"))){
	        	t_data_dic.setData_type_no( BeanUtils.stringToInt("data_type_no", request.getParameter("data_type_no")));
	        }
			if(request.getParameter("data_name")!=null&&!"".equals(request.getParameter("data_name"))){
	        	t_data_dic.setData_name(request.getParameter("data_name"));
	        }
			if(request.getParameter("limit_flag")!=null&&!"".equals(request.getParameter("limit_flag"))){
	        	t_data_dic.setLimit_flag(request.getParameter("limit_flag"));
	        }
			if(request.getParameter("high_limit")!=null&&!"".equals(request.getParameter("high_limit"))){
	        	t_data_dic.setHigh_limit(request.getParameter("high_limit"));
	        }
			if(request.getParameter("low_limit")!=null&&!"".equals(request.getParameter("low_limit"))){
	        	t_data_dic.setLow_limit(request.getParameter("low_limit"));
	        }
			if(request.getParameter("miscflgs")!=null&&!"".equals(request.getParameter("miscflgs"))){
	        	t_data_dic.setMiscflgs(request.getParameter("miscflgs"));
	        }
			if(request.getParameter("flag")!=null&&!"".equals(request.getParameter("flag"))){
	        	t_data_dic.setFlag(request.getParameter("flag"));
	        }
      	    if(request.getParameter("id")!=null&&!"".equals(request.getParameter("id"))){
	        	t_data_dic.setId(new Integer(request.getParameter("id")));
	        }
      	    if(request.getParameter("data_group")!=null&&!"".equals(request.getParameter("data_group"))){
	        	t_data_dic.setData_group(request.getParameter("data_group"));
	        }
	        if(request.getParameter("startdate")!=null&&!"".equals(request.getParameter("startdate"))){
	        	t_data_dic.setStartdate(request.getParameter("startdate"));
	        }
	        if(request.getParameter("enddate")!=null&&!"".equals(request.getParameter("enddate"))){
	        	t_data_dic.setEnddate(request.getParameter("enddate"));
	        }
	        t_data_dic.setStartNo( startIndex );
	        t_data_dic.setEndNo( startIndex + pageSize );
	    	List<T_data_dic> findAll = mapper.findAll(t_data_dic);
	        int totalCount = mapper.findCountAll(t_data_dic);
	       	pg = new Pg(findAll, totalCount, pageSize, startIndex);
	       	request.setAttribute("t_data_dicList", findAll);
		    request.setAttribute("pg", pg);
	    } catch (Exception e) {
			e.printStackTrace();
			log.error("------query t_data_dicList error:"+e);
		}

		return pg;
	}

	/**
	 * 2、新增保存  T_data_dic信息并且返回成功或者失败信息json格式结果如：result:[success/error]
	 * @param user
	 * @param request
	 * @return
	 */
	@RequestMapping("/saveT_data_dic")
	@ResponseBody
	public JsonVO saveT_data_dic(T_data_dic t_data_dic, HttpServletRequest request,HttpServletResponse response){
		JsonVO vo = new JsonVO();
		vo.setResult("error");
		vo.setJieguo(false);
		//如果有特殊需求，需要将json对象值转成java实体对象属性值
		if(mapper.save(t_data_dic)>0){
	        vo.setResult("success");
	        vo.setJieguo(true);
		}
		return vo;
	}

	/**
	 * 3、修改T_data_dic信息并且返回成功或者失败信息json格式结果如：result:[success/error]
	 * @param t_data_dic
	 * @param request
	 * @return JsonVO
	 */
	@RequestMapping("/updateT_data_dic")
	@ResponseBody
	public JsonVO updateT_data_dic(T_data_dic t_data_dic, HttpServletRequest request){
		JsonVO vo = new JsonVO();
		vo.setResult("error");
		vo.setJieguo(false);
		//如果有特殊值需要处理，在此处手工转换
		//T_data_dic t_data_dicTemp = mapper.findById(t_data_dic);
		//t_data_dicTemp.setXXX(t_data_dic.getXXX());
		//if(mapper.update(t_data_dicTemp)){

		if(mapper.update(t_data_dic)>0){
	        vo.setResult("success");
	        vo.setJieguo(true);
		}
		return vo;
	}

	/**
	 * 4、根据id查询T_data_dic单个信息并显示在修改页面
	 * @param id
	 * @param request
	 * @return T_data_dic json格式字符串
	 */
	@RequestMapping("/getT_data_dic")
	@ResponseBody
	public T_data_dic getT_data_dic(Integer id,HttpServletRequest request){
		T_data_dic t_data_dic = new T_data_dic();
		t_data_dic.setId(id);
		return mapper.findById(t_data_dic);
	}

	/**
	 * 5、删除T_data_dic根据id
	 * @param id
	 * @param request
	 * @param response
	 * return JsonVO ：json格式字符串
	 */
	@RequestMapping("/delT_data_dic")
	@ResponseBody
	public JsonVO delT_data_dic(Integer id,HttpServletRequest request,HttpServletResponse response){
        JsonVO vo = new JsonVO();
		vo.setResult("error");
		vo.setJieguo(false);

		T_data_dic t_data_dic = new T_data_dic();
		t_data_dic.setId(id);

		if(mapper.delete(t_data_dic)>0){
			vo.setResult("success");
	        vo.setJieguo(true);
		}
		return vo;
	}

	/**
	 * 6.1、跳转到t_data_dic/toT_data_dicList查询所有数据页面
	 *  return /WEB-INF/views/system/t_data_dic/t_data_dicList.jsp
	 */
    @RequestMapping(value = "/toT_data_dicList")
    public String toT_data_dicList() {
    	log.debug("------跳转到/WEB-INF/views/system/t_data_dic/t_data_dicList.jsp------");
        return "system/t_data_dic/t_data_dicList";
    }

	/**
	 * 6.2、跳转到t_data_dic/toT_data_dicSetList查询所有数据页面
	 *  return /WEB-INF/views/system/t_data_dic/t_data_dicList.jsp
	 */
    @RequestMapping(value = "/toT_data_dicSetList")
    public String toT_data_dicSetList() {
    	log.debug("------跳转到/WEB-INF/views/system/t_data_dic/toT_data_dicSetList.jsp------");
        return "system/t_data_dic/t_data_dicSetList";
    }
    
	/**
	 * 7、新增、修改、详情页面t_data_dic/toT_data_dicCurd跳转
     * system/t_data_dic/T_data_dicCurd.jsp
	 */
    @RequestMapping(value = "/toT_data_dicCurd")
    public String toT_data_dicCurd() {
    	log.debug("------跳转到/WEB-INF/views/system/t_data_dic/t_data_dicCurd.jsp------");
        return "system/t_data_dic/t_data_dicCurd";
    }

	/**
	 * 6.2、跳转到t_data_dic/toT_data_dicCompanyList 查询所有数据页面
	 *  return /WEB-INF/views/system/t_data_dic/t_data_dicCompanyList.jsp
	 */
	@RequestMapping(value = "/toT_data_dicCompanyList")
	public String toT_data_dicCompanyList() {
		log.debug("------跳转到/WEB-INF/views/system/t_data_dic/t_data_dicCompanyList.jsp------");
		return "system/t_data_dic/t_data_dicCompanyList";
	}

	/**
	 * 7、新增、修改、详情页面t_data_dic/toT_data_dicCompanyCurd 跳转
	 * system/t_data_dic/T_data_dicCurd.jsp
	 */
	@RequestMapping(value = "/toT_data_dicCompanyCurd")
	public String toT_data_dicCompanyCurd() {
		log.debug("------跳转到/WEB-INF/views/system/t_data_dic/t_data_dicCompanyCurd.jsp------");
		return "system/t_data_dic/t_data_dicCompanyCurd";
	}

    /**
	 * 8、批量删除T_data_dic根据主键id
	 * 是否要实现批量删除，待考虑，基本上用途不大
	 * @param id
	 * @param request
	 * @param response
	@RequestMapping("/delT_data_dicBatch")
	public String delT_data_dicBatch(HttpServletRequest request,HttpServletResponse response){
		String[] ids = request.getParameterValues("ids");
		System.out.println("------ids="+ids);
		T_data_dic t_data_dic = new T_data_dic();
		int j=0;
		for(int i =0;i< ids.length;i++){
			j++;
			log.error("------ids[i]="+ids[i]);
			t_data_dic.setId(new Integer(ids[i]).intValue());
			mapper.delete(t_data_dic);
		}
		if(j==ids.length){
			log.debug("------t_data_dic批量删除成功！------");
		}else{
			log.error("------t_data_dic批量删除部分成功！部分失败！------");
		}

		return "redirect:/t_data_dic/getAllT_data_dic";
	}
*/

	/**
	 * 9、修改T_data_dicByDatano信息并且返回成功或者失败信息json格式结果如：result:[success/error]
	 * @param t_data_dic
	 * @param request
	 * @return JsonVO
	 */
    @RequestMapping("/updateT_data_dicByDatano")
	@ResponseBody
	public JsonVO updateT_data_dicByDatano(T_data_dic t_data_dic, HttpServletRequest request){
		JsonVO vo = new JsonVO();
		vo.setResult("error");
		vo.setJieguo(false);
		//如果有特殊值需要处理，在此处手工转换
		//T_data_dic t_data_dicTemp = mapper.findById(t_data_dic);
		//t_data_dicTemp.setXXX(t_data_dic.getXXX());
		//if(mapper.update(t_data_dicTemp)){

		if(mapper.updateByDatano(t_data_dic)>0){
	        vo.setResult("success");
	        vo.setJieguo(true);

	        //清空SystemDataDicCache缓存中的信息；否则需要手工点击清除缓存信息；此处选择全部清除数据字典信息，也可以选择只清除 对应的缓存数据。
	        SystemDataDicCache.clearAll();
		}
		return vo;
	}
    
	/**
	 * 10、修改T_data_dicByDatano信息并且返回成功或者失败信息json格式结果如：result:[success/error]
	 * @param t_data_dic
	 * @param request
	 * @return JsonVO
	 */
    @RequestMapping("/updateT_data_dicSet")
	@ResponseBody
	public JsonVO updateT_data_dicSet(Integer id, String data_name, T_data_dic t_data_dic, HttpServletRequest request){
		JsonVO vo = new JsonVO();
		vo.setResult("error");
		vo.setJieguo(false);
		//如果有特殊值需要处理，在此处手工转换
		//T_data_dic t_data_dicTemp = mapper.findById(t_data_dic);
		//t_data_dicTemp.setXXX(t_data_dic.getXXX());
		//if(mapper.update(t_data_dicTemp)){
		T_data_dic obj = new T_data_dic();
		obj.setId(id);
		obj = mapper.findById(obj);
		obj.setData_name(data_name);

		if(mapper.update(obj)>0){
	        vo.setResult("success");
	        vo.setJieguo(true);

	        //清空SystemDataDicCache缓存中的信息；否则需要手工点击清除缓存信息；此处选择全部清除数据字典信息，也可以选择只清除 对应的缓存数据。
	        SystemDataDicCache.clearAll();
		}
		return vo;
	}
}









